//
// Private functions for the Zen Grids system; not for public use.
//


//
// Determines if the project has declared a minimum supported version number for
// the specified browser. This is a wrapper function that uses Compass'
// support-legacy-browser() if available.
// @see http://compass-style.org/reference/compass/support/#function-support-legacy-browser
//
@function zen-support-for($browser, $min-version) {
  @if function-exists('support-legacy-browser') {
    @return support-legacy-browser($browser, $min-version);
  }
  @else {
    @return zen-support-legacy-browser($browser, $min-version);
  }
}

//
// A stripped-down version of Compass' support-legacy-browser().
//
@function zen-support-legacy-browser($browser, $min-version) {
  // Check against declared minimums.
  $min-required-version: map-get($browser-minimum-versions, $browser);

  // Ensure $min-version and $min-required-version are strings (or null).
  @if not (type-of($min-required-version) == "null" or type-of($min-required-version) == "string") {
    @warn "map-get($browser-minimum-versions, #{$browser}) must be set to a string (or null); #{$min-required-version} is a #{type-of($min-required-version)}.";
  }
  @if not (type-of($min-version) == "string") {
    @warn "The $min-version parameter of zen-support-for() must be a string; #{$min-version} is a #{type-of($min-version)}.";
  }

  @return ($min-required-version and (zen-str-to-int($min-version) >= zen-str-to-int($min-required-version)));
}

//
// Poor-man's string-to-integer conversion. We are only concerned with IE
// versions, which are integers, so we don't need a better solution like Hugo's.
// @see http://hugogiraudel.com/2014/01/15/sass-string-to-number/
//
@function zen-str-to-int($string) {
  $integers: ("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "100");
  @return index($integers, $string);
}
